#!/usr/bin/python
# -*- coding: UTF-8 -*-

from kpautos.engine.case import Case
from kptest.config.enum import DeviceType, HostType, DeviceUtility


class BMC_SSH_006(Case):
    """
        Name:
            BMC_SSH_006
        Label:
            通过ClI接口可以检查和清除系统事件
        PreCondition:
            1、BMC正常运行
        TestStep:
            1.	登录BMC
            2.	查看系统事件，有结果A）
            iBMC:/->ipmcget -d sel -v list
            3.	清除事件，有结果B），再次查看系统事件，有结果C）
            iBMC:/->ipmcset -d sel -v clear
        ExpectedResult:
            A）显示系统事件
            B）命令执行成功
            C）系统事件为空
        Parameters:

        Remark:

    """

    # 测试执行前配置等准备操作
    def pre_test_case(self):
        self.device_dut = self.resource.get_device(device_type=DeviceType.Server, utility=DeviceUtility.DUT)
        self.cli_api = self.device_dut.get_api(ns_name="BmcCli")

    # 测试步骤
    def procedure(self):
        self.log_step("1、查看系统事件")
        resp = self.cli_api.cli_query_clear_sel('get', 'list')
        self.log_info(resp)
        self.log_step("2、清除系统事件")
        resp = self.cli_api.cli_query_clear_sel('set', 'clear')
        self.log_info(resp)
        self.log_step("3、再次查看系统事件")
        resp = self.cli_api.cli_query_clear_sel('get', 'list')
        self.log_info(resp)
        if len(resp['information']) > 1:
            raise Exception("清除系统事件失败")

    # 测试结束后恢复环境
    def post_test_case(self):
        pass